//
// Created by wuzhe on 2022/4/28.
//

#ifndef UNIVERSEROOM_SLAVESTATE_H
#define UNIVERSEROOM_SLAVESTATE_H

#include <string>

class Slave;
class SlaveState {
public:
    Slave& slave;
    SlaveState(Slave& slave);
    virtual SlaveState* getAck();
    virtual SlaveState* getERR();

    virtual SlaveState* getSendRoom(std::string roomName);
};

class SlaveOfflineState : public SlaveState {
public:
    using SlaveState::SlaveState;
    SlaveState* getAck() override;
    SlaveState* getERR() override;
    SlaveState* getSendRoom(std::string roomId) override;
};


#endif //UNIVERSEROOM_SLAVESTATE_H
